from typing import Optional
from pydantic import BaseModel, EmailStr

class NewInfoPushBase(BaseModel):
    """
    新信息推送基础模型
    """
    email: Optional[EmailStr] = None
    count: Optional[int] = None

class NewInfoPushCreate(NewInfoPushBase):
    """
    创建新信息推送模型 - 不需要 id，因为是自增的
    """
    email: EmailStr  # 创建时邮箱是必需的
    count: int       # 创建时计数是必需的

class NewInfoPushUpdate(NewInfoPushBase):
    """
    更新新信息推送模型
    """
    isDelete: Optional[bool] = None

class NewInfoPushResponse(NewInfoPushBase):
    """
    新信息推送响应模型
    """
    id: int
    email: EmailStr
    count: int
    isDelete: bool = False
    
    class Config:
        from_attributes = True  # 允许从ORM模型创建